package com.hqyj.javaGraduation.hotel.service.Impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hqyj.javaGraduation.hotel.dao.HotelMenuDao;
import com.hqyj.javaGraduation.hotel.pojo.HotelMenu;
import com.hqyj.javaGraduation.hotel.pojo.HotelPackage;
import com.hqyj.javaGraduation.hotel.service.HotelMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;


@Service
public class HotelMenuServiceImpl implements HotelMenuService {

    @Autowired(required = false)
    HotelMenuDao hotelMenuDao;

    @Override
    public HashMap<String, Object> addMenu(HotelMenu hotelMenu) {
        HashMap<String, Object> map=new HashMap<String, Object>();
        int num=hotelMenuDao.insert(hotelMenu);
        if(num>0){
            map.put("info","保存成功");
        }else{
            map.put("info","新增失败");
        }
        return map;
    }

    @Override
    public HashMap<String, Object> updateMenu(HotelMenu hotelMenu) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        int num = hotelMenuDao.updateById(hotelMenu);
        if(num>0){
            map.put("info","保存成功");
        }else{
            map.put("info","修改失败");
        }
        return map;
    }

    @Override
    public HashMap<String, Object> delMenuById(Integer id) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        int num = hotelMenuDao.deleteById(id);
        if(num>0){
            map.put("info","删除成功");
        }else{
            map.put("info","删除失败");
        }
        return map;
    }

    @Override
    public HashMap<String, Object> menuList(HotelMenu hotelMenu) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        //第一步：创建分页对象
        Page<HotelMenu> hotelMenuPage = new Page<HotelMenu>(hotelMenu.getPage(),hotelMenu.getRow());

        //创建查询条件对象
        QueryWrapper<HotelMenu> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(
                hotelMenu.getMenuName()!=null&&!hotelMenu.getMenuName().equals(""),
                "menu_name",
                hotelMenu.getMenuName());
        //第二步：查询分页，获取分页数据集
        Page<HotelMenu> pageList  =hotelMenuDao.selectPage(hotelMenuPage,queryWrapper);
        //获取当前页的集合
        map.put("info",pageList.getRecords());
        //获取总条数
        map.put("total",pageList.getTotal());
        //获取总页数
        map.put("totalPage",pageList.getPages());
        return map;
    }

    @Override
    public HashMap<String, Object> addMenuToPkg(Integer menuId,Integer pacId) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        int num=hotelMenuDao.addMenuToPkg(menuId,pacId);
        if(num>0){
            map.put("info","保存成功");
        }else{
            map.put("info","新增失败");
        }
        return map;
    }

    @Override
    public HashMap<String, Object> delMenuPkg(Integer menuId, Integer pacId) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        int num=hotelMenuDao.delMenuPkg(menuId,pacId);
        if(num>0){
            map.put("info","删除成功");
        }else{
            map.put("info","删除失败");
        }
        return map;
    }

    @Override
    public HashMap<String, Object> getMenuPkg() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        List<HotelPackage> list = hotelMenuDao.getMenuPkg();
//        List<HotelPackage> list1=new ArrayList<>();
//        List<HotelPackage> list2=new ArrayList<>();
//        List<HotelPackage> list3=new ArrayList<>();
//        if(list!=null){
//            //构建权限菜单的数据结构
//            for(HotelPackage n:list){
//                if (n.getPacId()!=null){
//                    HotelMenu hotelMenu=new HotelMenu();
//                    hotelMenu.setMenuName(n.getMenuName());
//                    List<HotelMenu> l=new ArrayList<>();
//
//                    if (n.getPacId().equals(1)){
//                        n.setMenus(n.getMenus().add(hotelMenu));
//                        list1.add(n);
//                    }else if (n.getPacId().equals(2)){
//                        n.getMenus().add(hotelMenu);
//                        list2.add(n);
//                    }else if (n.getPacId().equals(3)){
//                        n.getMenus().add(hotelMenu);
//                        list3.add(n);
//                    }
//                }
//                map.put("套餐一",list1);
//                map.put("套餐二",list2);
//                map.put("套餐三",list3);
//            }
//        }
        map.put("list",list);
        return map;
    }
}
